#ifndef DEPARTURE_H
#define DEPARTURE_H

#include <QWidget>
#include <QTimer>

namespace Hydra_Departure {

typedef enum _departure_state{
    INIT,                       // 初始态
    DEPARTURE,                  // 发车请求
    DOOR_CLOSE_PROMPT           // 关门提示
}DEPARTURESTATE;


}



using namespace Hydra_Departure;



class Departure : public QWidget
{
    Q_OBJECT

public:
    Departure(QWidget *parent = 0);

    void setInterval(quint16 interval);                                             // 设置刷新频率
    void setState(DEPARTURESTATE state);                                            // 设置状态


public slots:
    void refresh();

protected:
    void paintEvent(QPaintEvent *event);
    void resizeEvent(QResizeEvent *event);
    void initParam();
    void drawImage(QPainter *pPainter);





private:
    QTimer mTimer;                                                                  // 计时器
    QPoint mCenterPoint;                                                            // 控件中心
    DEPARTURESTATE mState = DEPARTURESTATE::INIT;                                   // 发车状态
    quint8 mImageHeightProportion = 80;                                             // 图形高度占控件高度百分比
    quint8 mImageWidthProportion = 60;                                              // 图形宽度占控件宽度百分比
    QPoint mTop;                                                                    // 箭头三角顶点
    QPoint mLeft;                                                                   // 箭头三角左边底角
    QPoint mRight;                                                                  // 箭头三角右边底角
    QRect mRect;                                                                    // 箭头正方形
    QColor mDepartureColor = QColor(212, 212, 212);                                 // 发车请求颜色
    QColor mDoorColor = QColor(212, 212, 212);                                      // 车门颜色
    QColor mClosePromptColor = QColor(255, 242, 0);                                 // 关门提示颜色
    QRect mLeftDoorRect;                                                            // 左门矩形
    QRect mRightDoorRect;                                                           // 右门矩形
    QPoint mLeftDoorTop;                                                            // 左门三角顶角
    QPoint mLeftDoorBottomLeft;                                                     // 左门三角左底角
    QPoint mLeftDoorBottomRight;                                                    // 左门三角右边底角
    QPoint mRightDoorTop;                                                           // 右门三角顶角
    QPoint mRightDoorBottomLeft;                                                    // 右门三角左底角
    QPoint mRightDoorBottomRight;                                                   // 右门三角右边底角
    quint8 mHorizontalSpace = 8;                                                    // 横向间隔
};




#endif // DEPARTURE_H
